#pragma once

#include "AITypes.h"

namespace ai
{
	class AIPackage;

	//
	class AIActor
	{
	public:
		AIActor();

		void setMemoryValue(unsigned int key, const AIValue& value);
		const AIValue& getMemoryValue(unsigned int key) const;

		void setUserData(void* value);
		void* getUserData() const;

		void addPackage(AIPackage* package);

		void update();
	protected:
		void selectActivePackage();

		void* _userData;
		AIPackage* _activePackage;

		std::map<unsigned int, AIValue> _memory;
		std::vector<AIPackage*> _packages;
	};
}